高層次理解:
零拷貝,zero copy 是一個性能優化的技術,核心概念是減少數據在記憶體裡,不必要的複製次數。
傳統的數據傳輸要在用戶態空間跟內核態空間之間進行多次數據拷貝,但零拷貝可以直接讓數據從源頭到目的地,避免中間的複製。
有什麼好處?
CPU Usage 大幅降低,因為不需要它來參與複製的任務了
記憶體使用更少,不用把複製的數據放在緩衝區了
延遲更低,因為傳輸路徑更短
跟 Linux 有很大關係:
零拷貝要操作系統內核的支持
需要硬體整合 DMA, Direct Memory Access 硬體特性
文件系統優化
衍生問題:
什麼是用戶態跟內核態?
什麼是緩衝區?
什麼是 DMA?
系統調用是什麼?